#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "dialog/ClientDialog.h"
#include "dialog/ServerDialog.h"
#include "dialog/ServerInfo.h"
#include "dialog/ConfigDialog.h"

namespace Ui {
class MainWindow;
}

class Room;

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void setStatusBarText(QString text);
    void showWarning(const QString &message);
    void showInfo(const QString &title, const QString &content);

    void showChatMessage(const QString &player_name, const QString &msg);
    void sendChatMessage();

protected slots:
    void announceNewPlayer(int id, const QString &name);
    void on_actionStartGame_triggered();
    void on_actionFullScreen_triggered();
    void on_actionServerInfo_triggered();
    void on_actionReady_triggered();
    void setHosted();
    void roundEnd();

private:
    Ui::MainWindow *ui;
    ClientDialog *client_dialog;
    ServerDialog *server_dialog;
    ServerInfo *server_info;
    ConfigDialog *config_dialog;
    Room *room;
};

#endif // MAINWINDOW_H
